﻿using System.ComponentModel.Composition;

namespace Peter.Common
{
   /// <summary>
   /// Interface for a pluing for peter.
   /// </summary>
   [PartNotDiscoverable]
   [InheritedExport (typeof (PeterPluginBase))]
   public abstract class PeterPluginBase
   {
      /// <summary>
      /// Installs the plugin.
      /// </summary>
      public virtual void Install () { }

      /// <summary>
      /// Called when the plugin first starts.
      /// </summary>
      public virtual void Start () { }

      /// <summary>
      /// Method called when Peter is requesting a dock item from the given plugin.
      /// </summary>
      /// <returns>The requested dock item, null if no dock items are needed.</returns>
      public virtual object RequestDockItem ()
      {
         return null;
      }
   }
}
